package com.example.kotlin

class Person2(val name: String, val age: Int) {
    // 主构造函数初始化类的属性
    init {
        println("Initialized with name: $name and age: $age")
    }

    // 次级构造函数
    constructor(name: String) : this(name, 0) {
        println("Initialized with name: $name and default age: 0")
    }

    // 次级构造函数
    constructor() : this("Unknown", 0) {
        println("Initialized with default name: Unknown and default age: 0")
    }

    // 打印方法
    fun printInfo() {
        println("Person(name=$name, age=$age)")
    }
}

fun main() {
    // 使用主构造函数
    val person1 = Person2("Alice", 30)
    person1.printInfo()  // 输出：Person(name=Alice, age=30)

    // 使用次级构造函数，只提供名字
    val person2 = Person2("Bob")
    person2.printInfo()  // 输出：Person(name=Bob, age=0)

    // 使用次级构造函数，不提供任何参数
    val person3 = Person2()
    person3.printInfo()  // 输出：Person(name=Unknown, age=0)
}
